In designing and maintaining Web page presentations, template engines are frequently employed that allow separation of the function of getting data from a database from the function of presenting this data. Model-View-Controller (MVC) methodology is a common prior art method of performing this separation. MVC relates the user interface to underlying data models. MVC comprises three main components or objects to be used in attaining this goal:                A Model, which represent the underlying, logical structure of data in a software application and the high-level class associated with it. That is, the model represents enterprise data and the business rules that govern access to and updates of this data. This object model does not contain any information about the user interface.        A View, which renders the contents of a Model. It accesses enterprise data through the Model and specifies how that data should be presented. Typically, it is a goal of the View component to maintain consistency in its presentation when the Model changes.        A Controller, which translates interactions with the View into actions to be performed by the Model. The actions performed by the Model include activating business processes or changing the state of the Model. Based on the user interactions and the outcome of the Model actions, the Controller responds by selecting an appropriate view.        
The separation of model and view allows multiple views to use the same enterprise model. An important consideration of any well designed MVC is to allow for improved efficiency of development and maintenance. Accordingly, such a well designed MVC system entails the ability to develop an application rapidly and maintain it at low cost by having utilized a design that is flexible enough for future improvement. At an abstract level, the separation of logic and presentation is certainly desirable as long as it meets this flexibility goal.
Typically MVC prior art systems utilize Java Server Pages (JSPs) to create the template. This template essentially describes how data should be visually presented. JSP is a technology for controlling the content or appearance of Web pages through the use of servlets, small programs that run on the Web server. In this manner, these servlets modify the Web page before it is sent to the user who requested it. Microsoft's Active Server Page (ASP) technology is comparable to JSP. Whereas a Java Server Page is a Java program that is executed by the Web server, an ASP contains a script that is interpreted by a script interpreter (e.g. VBScript or Jscript) before the page is sent to the user.
Various attempts have been made to implement XML (extensible Markup Language) and XSLT (extensible Stylesheet Language Transformations, which reformats XML data into a new document such as HTML) into template based engines for separating the presentation function. These prior art systems present a tradeoff in the difficult in development (exemplified by those using XSLT) and the difficulty in effecting subsequent changes.
The present invention overcomes these problems in the prior art by providing a more elegant solution to the problem of separation of the presentation and logic—in a manner that is more conducive to both initial development and subsequent changes.